#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int n,m,k;
int a[N];
int mid;


bool check(int mid)
{
	int cnt=0;
	int now=1;
	int stap=1;
	for(int j=2;now<=n;j++)
	{
		if(a[j]-a[now]>mid||stap==k) 
		{
			cnt++;
			stap=1;
			now=j;
			j=now;
			
		}else
		{
			stap++;
			
		}
	}
	if(cnt>m) return 0;
	else return 1;
	
}
int main()
{
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	
	int l=1;
	int r=1e9;
	while(l<r)
	{
		 mid=l+r>>1;
		if(check(mid)) r=mid;
		else l=mid+1;
	}
	printf("%d",l);
	return 0;
}
